﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using middleware.dominio.persistencia;
using middleware.dominio.persistencia.exception;
using middleware.dominio.negocio.exception;

namespace middleware.dominio
{
    public class LogManager
    {
        private static readonly LogManager instance = new LogManager();

        public static LogManager getInstance()
        {
            return instance;
        }

        public Log CrearLog(Usuario usuario, string linea)
        {
            Log log = new Log();
            try
            {
                log.fecha = DateTime.Now;
                log.usuario = usuario;
                log.linea = linea;
                PersistenceFactory.getMiddlewarePersistencia().PersistirLog(log);
            }
            catch (AgregarPersisteciaException e)
            {
                throw new BusinessException("Error en la Ejecucion " + "mientras se guardaba un log", e);
            }
            return log;
        }

        public List<Log> ObtenerLogs(DateTime fecha, string linea)
        {
            List<Log> result = new List<Log>();
            try
            {
                result = PersistenceFactory.getMiddlewarePersistencia().ObtenerLogs(fecha, linea);
            }
            catch (ConsultarPersisteciaException e)
            {
                throw new BusinessException("Error en la Ejecucion " + "mientras se obtiene un log", e);
            }
            return result;
        }
    }
}
